$(function () {
  //1- 首页渲染
  //2- 分页
  //3- 添加商品

  var currentPage = 1;
  var pageSize = 5;
  //1- 首页渲染
  //ajax取数据 + 模板引擎渲染
  function render() {
    $.ajax({
      url: '/product/queryProductDetailList',
      type: 'GET',
      dataType: 'json',
      data: {
        page: currentPage,
        pageSize: pageSize,
      },
      success: function (res) {
        console.log(res);
        //渲染
        $('tbody').html(template('tmp', res));
        //根据真实总数 生成分页
        setPage(res.total);
      }
    })
  }
  render();

  //分页
  //1- 获取数据的总数
  //2- 利用分页插件 生成分页按钮
  function setPage(total) {
    // 利用分页插件 生成分页按钮
    $("#paginator").bootstrapPaginator({
      bootstrapMajorVersion: 3,//默认是2，如果是bootstrap3版本，这个参数必填
      currentPage: currentPage,//当前页
      totalPages: Math.ceil(total / pageSize),//总页数     
      onPageClicked: function (event, originalEvent, type, page) {
        //为按钮绑定点击事件 page:当前点击的按钮值
        // 改变当前页取值
        currentPage = page;
        // 重新渲染
        render();
      }
    });
  }

  //3- 下拉列表数据填充
  //ajax取数据 + 模板渲染
  $.ajax({
    url: '/category/querySecondCategoryPaging',
    type: 'GET',
    dataType: 'json',
    data: {
      page: 1,
      pageSize: 1000,
    },
    success: function (res) {
      console.log(res);
      $('.cate-two-list').html(template('tmp-two', res))

    }
  })

  //4- 下拉列表选中效果
  //1- 选择a标签 获取a标签的文字 赋值给按钮
  //2- 获取a标签的data-id,赋值给隐藏域 将来会提交给后台
  $('.cate-two-list').on('click', 'a', function () {
    $('.btn-title').text($(this).text());
    $('#brandId').val($(this).data('id'));
    // 当下拉列表选中 ， 恢复下列表的状态
    $('.add-form').data('bootstrapValidator').updateStatus('brandId', 'VALID');
  })


  //5- 图片上传
  //图片上传的要求:
  //必须上传三张图片,只保留最近上传的三张图片,
  //图片预览
  //用数组解决问题: 数组有length,自带下标 有顺序
  var picArr = [];//记录图片上传的个数和顺序

  $("#file").fileupload({
    dataType: "json",
    //e：事件对象
    //data：图片上传后的对象，通过data.result.picAddr可以获取上传后的图片地址
    done: function (e, data) {
      console.log(data.result);
      var img = data.result;
      //记录已经上传成功的图片
      picArr.unshift(img);
      //向图片容器向前面添加一张图片
      $('.img-box').prepend('<img src="' + img.picAddr + '" alt="" height="60">');
      //判断图片是否大于三张
      if (picArr.length > 3) {
        //删除最后一张
        picArr.pop();
        //图片列表
        $('.img-box img-last-child').remove();

      }
      if (picArr.length == 3) {
        //图片够三张图片 数据就合理 把图片的数据赋值给隐藏域 将来传递给后台
        //JSON.parse();
        // JSON.stringify();
        $('#picArr').val(JSON.stringify(picArr));
        // 当图片够3张了，恢复图片的状态
        $('.add-form').data('bootstrapValidator').updateStatus('picArr', 'VALID');
      }


      console.log(picArr);

    }
  });


  //6- 表单非空校验
  //使用表单插件校验
  $('.add-form').bootstrapValidator({
    //1. 指定不校验的类型，默认为[':disabled', ':hidden', ':not(:visible)'],可以不设置
    excluded: [':disabled'],

    //2. 指定校验时的图标显示，默认是bootstrap风格
    feedbackIcons: {
      valid: 'glyphicon glyphicon-ok',
      invalid: 'glyphicon glyphicon-remove',
      validating: 'glyphicon glyphicon-refresh'
    },

    //3. 指定校验字段
    fields: {
      // 校验二级分类
      brandId: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请选择二级分类'
          }
        }
      },
      // 商品名称
      proName: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请输入商品名称'
          }
        }
      },
      // 商品描述
      proDesc: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请输入商品描述'
          }
        }
      },
      // 商品库存
      //非空 非0开头的数字
      num: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请输入商品库存'
          },
          //正则校验
          regexp: {
            regexp: /^[1-9]\d*$/,
            message: '价格必须是 非0开头的数字'
          }
        }
      },
      // 商品尺码
      //非空 必须是xx-xx的格式 x是数字
      size: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请输入商品尺码'
          },
          //正则校验
          regexp: {
            regexp: /^[1-9]\d-[1-9]\d$/,
            message: '商品尺码 必须是xx-xx的格式 x是数字'
          }
        }
      },
      // 商品原价
      //非空 合适的数字 100 11.5 整数 小数
      oldPrice: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请输入商品原价'
          },
          //正则校验
          regexp: {
            regexp: /(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/,
            message: '价格必须是整数或是小数'
          },
        }
      },
      // 商品现价
      //非空 合适的数字 100 11.5 整数 小数
      price: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请输入商品现价'
          },
          //正则校验
          regexp: {
            regexp: /(^[1-9]\d*(\.\d{1,2})?$)|(^0(\.\d{1,2})?$)/,
            message: '价格必须是整数或是小数'
          },
        }
      },
      // 图片地址
      picArr: {
        validators: {
          //不能为空
          notEmpty: {
            message: '请上传三张图片'
          }
        }
      }
    }

  });

  //7- 手动恢复图片和下拉列表的校验状态
  //当下拉列表选中时 恢复下拉列表状态
  //当图片够三张时恢复图片状态



  //8-添加商品到数据库
  //1-点击添加按钮,在表单数据校验通过的情况下,通过ajax发送数据到后台
  //2-添加完成后 页面重新渲染 表单重置 模态框隐形 
 $('.add-form').on('form.bv.success',function(e){
   //阻止submit按钮提交
   e.preventDefault();
   //ajax提交
   $.ajax({
     url:'/product/addProduct',
     type:'post',
     data:$('.add-form').serialize(),
     dataType:'json',
     success:function(res){
       console.log(res);
      //  添加完成后 页面重新渲染 表单重置 模态框隐形
      render();
      //隐藏模态框
      $('.modal-add').modal('hide');
      //表单重置
      $('.add-form').data('bootstrapValidator').resetForm(true);
      //重置图片和按钮的文字
      $('.btn-title').text('请选择二级分类');
      $('.img-box').empty();
      //重置数据(吃完饭要洗碗)
      picArr=[];
        

     }
   })
 })




})